

package controlador;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.text.ParseException;
import javax.swing.JButton;
import vista.VentanaRegistrarJuez;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Locale;
import javax.swing.JFileChooser;
import modelo.Juez;
import vista.ValidacionesGenerales;


public class ControladorRegistrarJuez implements ActionListener,KeyListener {

    private VentanaRegistrarJuez miVentanaJuez;
    private Component areaTexto;
    public ControladorRegistrarJuez() {
    miVentanaJuez=new VentanaRegistrarJuez();
    miVentanaJuez.addListener((ActionListener)this);
    miVentanaJuez.addListener((KeyListener)this);
    miVentanaJuez.setCompetenciasJuzgadas(0);
    miVentanaJuez.estadoBotonRegistrar(false);
    miVentanaJuez.estadoBotonEliminar(false);
    miVentanaJuez.estadoBotonModificar(false);
     
    
   
       
    }

    public void actionPerformed(ActionEvent evt) {
       
         
        if (evt.getSource() instanceof JButton)
         { 
              Juez jue=new Juez();
             JButton boton= (JButton) evt.getSource();
             
              if (boton.getActionCommand().equals("Registrar"))
             {
                 if(!validarJueces()) {       
             
                     
                 }else{
                     
                   jue.AgregarJueces(miVentanaJuez.getCedula(), miVentanaJuez.getNombre(),miVentanaJuez.getApellido(),miVentanaJuez.getFechaNacimiento(),miVentanaJuez.getCompetenciasJuzgadas());
                   vista.MensajesGenerales.mostrarMensaje("Registrado con exito"); 
                    miVentanaJuez.limpiar();}
             }
        
        
             if (boton.getActionCommand().equals("Salir"))
                 {
                       miVentanaJuez.dispose();     
                       
                 }

            
              if (boton.getActionCommand().equals("Modificar") )
                 

             {
                 if(miVentanaJuez.getCedula().length()==0 ){
         
                    vista.MensajesGenerales.mostrarMensajeErrores("Ingrese la cedula");
                   
       
                    }else {
                    
                     jue = jue.BuscarJueces(miVentanaJuez.getCedula());
                     if(jue!=null){
                    
                     jue.modificarJueces(miVentanaJuez.getCedula(), miVentanaJuez.getNombre(),miVentanaJuez.getApellido(),miVentanaJuez.getFechaNacimiento(),miVentanaJuez.getCompetenciasJuzgadas());
                      vista.MensajesGenerales.mostrarMensaje("Juez Modificado Con exito");
                      miVentanaJuez.limpiar();
                      miVentanaJuez.estadoBotonEliminar(false);
                      miVentanaJuez.estadoBotonModificar(false);
                 }       
                    
             }
             }    
             if (boton.getActionCommand().equals("Eliminar"))
               
       
             {
              if(miVentanaJuez.getCedula().length()==0 )
         
                     vista.MensajesGenerales.mostrarMensajeErrores("Ingrese la cedula");
                   
       
                  else{
                         jue = jue.BuscarJueces(miVentanaJuez.getCedula());
                    
                  
                    if(jue!=null){
                      jue.eliminarJueces(miVentanaJuez.getCedula());
                      vista.MensajesGenerales.mostrarMensaje("Juez Eliminado Con exito");
                       miVentanaJuez.estadoBotonEliminar(false);
                       miVentanaJuez.estadoBotonModificar(false);
                      miVentanaJuez.limpiar();
                          }
                  }
             
             }
             
              if (boton.getActionCommand().equals("Cargar de Arch")){
                  cargarJuecesTxt();
                  
                  
              }
              if (boton.getActionCommand().equals("Cancelar"))
             {
                   
                       miVentanaJuez.limpiar();
                       miVentanaJuez.estadoBotonRegistrar(false);
                        miVentanaJuez.estadoBotonEliminar(false);
                       miVentanaJuez.estadoBotonModificar(false);
             }
        
        
             
             
         }     
        
    } 
    public void keyTyped(KeyEvent e) {
   //-----------validacion de numeros-----------------------     
      String campo;
           campo=miVentanaJuez.getCedula();
        char caracteres = e.getKeyChar();
        if( caracteres < '0' || caracteres > '9') 
      
            e.consume(); 
        else
            if (campo.length()==9)
               e.consume();

 
    
}  
    
    public void keyPressed(KeyEvent e) {
       if (e.getKeyCode()==KeyEvent.VK_ENTER)
       {
           
        if(miVentanaJuez.getCedula().length()==0 ){
         
              vista.MensajesGenerales.mostrarMensajeErrores("Ingrese la cedula");
         }else{
        
           buscarJuez();
       }   
           
           
    }
    }

    public void keyReleased(KeyEvent e) {
     
    }
    
    private void buscarJuez(){
        Juez jueces =new Juez();
        jueces = jueces.BuscarJueces(miVentanaJuez.getCedula());
        
        if (jueces!=null){
            
            miVentanaJuez.setApellido(jueces.getApellido().toUpperCase(Locale.FRENCH));
            miVentanaJuez.setCompetenciasJuzgadas(jueces.getCantJuegosJuzgados());
            miVentanaJuez.setFechaNacimiento(jueces.getFecha_naci());
            miVentanaJuez.setNombre(jueces.getNombre().toUpperCase(Locale.FRENCH));
            miVentanaJuez.estadoBotonRegistrar(false);
            miVentanaJuez.estadoBotonEliminar(true);
            miVentanaJuez.estadoBotonModificar(true);
        }else{
             vista.MensajesGenerales.mostrarMensajeCuestion("No Existe ,Desea Registrar");
            miVentanaJuez.focusNombre();
            miVentanaJuez.estadoBotonRegistrar(true);}
            
        }

 public boolean validarJueces(){
 
 if(miVentanaJuez.getCedula().length()==0 ){
         
       vista.MensajesGenerales.mostrarMensajeErrores("Ingrese la cedula");
      return false;}
       
        else if (miVentanaJuez.getNombre().length()==0|| miVentanaJuez.getApellido().length()==0 )
   
     return false;
        else if(!vista.ValidacionesGenerales.isDate(miVentanaJuez.getFechaNacimiento())){
              vista.MensajesGenerales.mostrarMensajeErrores("Error de fecha"); 
               return false;
        }else if(miVentanaJuez.getCompetenciasJuzgadas()<0){
                 vista.MensajesGenerales.mostrarMensajeErrores("Ingrese el numero de competencias juzgadas"); 
               return false;}
               
             else if(miVentanaJuez.getCompetenciasJuzgadas()>=0)
                   
                return true;
         else
                 
              return true;
 }
 
  
    
 
 
  
    public static void AgregarJuecestxt(String cedula, String nombre, String apellido, String fecha_naci,int CantCompetenciasJuz)
  {
    Juez Jueces =new Juez();
    Jueces.setCedula(cedula);
    Jueces.setApellido(apellido);
    Jueces.setFecha_naci(fecha_naci);
   Jueces.setCantJuegosJuzgados(CantCompetenciasJuz);
    Jueces.setNombre(nombre);
    Jueces.ListaJueces.add(Jueces); //almaceno en la lista    
     
   }
    
 public void cargarJuecesTxt() {   
 
  
  if(Juez.ListaJueces.size()>6)
      vista.MensajesGenerales.mostrarMensaje("Los jueces ya se encuentran cargados  " +  Juez.ListaJueces.size()+ " en  Total");
  else{
      FileReader fr = null;
      BufferedReader br = null;
      
      
        
           JFileChooser fileChooser = new JFileChooser();
            int seleccion = fileChooser.showOpenDialog(areaTexto);
              if (seleccion == JFileChooser.APPROVE_OPTION)
                {
                  File fichero = fileChooser.getSelectedFile();

       try {
     

             fr = new FileReader(fichero);
             br= new BufferedReader(fr);

           
      String ArrLineas[];   //  arreglo de string
      ArrLineas = new String[ 5 ];
     
         int cont=0;
         // Lectura del fichero
         String linea;
       
        
         while((linea=br.readLine())!=null )
         {
         
              ArrLineas[cont++]=linea;        
              if (cont==5)
                {
                 AgregarJuecestxt(ArrLineas[0], ArrLineas[1],ArrLineas[2],ArrLineas[3],'0');
                
                
                 cont=0;
              }
      
            }
          vista.MensajesGenerales.mostrarMensaje("cargados con exito");
             
        
       }
      catch(Exception e){
      }finally{
       
         try{                    
            if( null != fr ){   
               fr.close();     
            }                  
         }catch (Exception e1){ 
         }
}
  
                 
 }
  }   

 }
}
 
 